package topday1_9.mxdx9_1;

/**
 * @Auther:小陈的Java
 *  非静态成员内部类定义与使用
 */
public class OutsideClass {
    private int id = 1;
    /**
     * 1.非静态成员内部类也是类的成员可以被访问权限修饰符修饰、可以被final 、abstract修饰
     * ；这些修饰父的作用和成员的变量、成员方法的修饰作用一样。
     */
    public class InnerClass{
        private int id;
        public void method(){
            System.out.println(this.id);
            System.out.println(OutsideClass.this.id);
            System.out.println("内部类方法");
        }
        public InnerClass(){
            System.out.println("内部类构造方法");
        }
        /**
         * 报错：不可以定义静态变量和静态方法
         */
//        private static int i ;
//        public static void method2(){}

    }
    //内部类支持继承
    public final class A extends InnerClass{

    }
    public static void main(String[] args) {
        OutsideClass outsideClass = new OutsideClass();
        OutsideClass.InnerClass innerClass = outsideClass.new InnerClass();
        innerClass.method();
    }
}
